package Experiment_1;

import java.util.Random;  

public class Rand {  
    public static void main(String[] args) {  
        // 初始化一个5x5的二维数组  
        int[][] array = new int[5][5];  
  
        // 使用随机函数生成25个随机整数并赋值给二维数组  
        Random random = new Random();  
        for (int i = 0; i < 5; i++) {  
            for (int j = 0; j < 5; j++) {  
                array[i][j] = random.nextInt(100); // 假设整数范围在[0, 99]  
            }  
        }  
  
        // 按行列输出该数组  
        printArray(array);  
  
        // 求最外一圈元素之和  
        int perimeterSum = getPerimeterSum(array);  
        System.out.println("最外一圈元素之和：" + perimeterSum);  
  
        // 求主对角线中最大元素的值，指出其位置  
        int maxDiagonalValue = getMaxDiagonalValue(array);  
        System.out.println("主对角线中最大元素的值：" + maxDiagonalValue);  
        findMaxDiagonalPosition(array, maxDiagonalValue);  
    }  
  
    // 打印二维数组  
    private static void printArray(int[][] array) {  
        for (int i = 0; i < array.length; i++) {  
            for (int j = 0; j < array[i].length; j++) {  
                System.out.print(array[i][j] + " ");  
            }  
            System.out.println();  
        }  
    }  
  
    // 计算最外一圈元素之和  
    private static int getPerimeterSum(int[][] array) {  
        int sum = 0;  
        // 第一行和最后一行  
        for (int i = 0; i < array.length; i++) {  
            sum += array[i][0] + array[i][array.length - 1];  
        }  
        // 第一列和最后一列（除去已经计算过的四个角）  
        for (int j = 1; j < array[0].length - 1; j++) {  
            sum += array[0][j] + array[array.length - 1][j];  
        }  
        return sum;  
    }  
  
    // 找出主对角线中最大元素的值  
    private static int getMaxDiagonalValue(int[][] array) {  
        int max = array[0][0];  
        for (int i = 0; i < array.length; i++) {  
            if (array[i][i] > max) {  
                max = array[i][i];  
            }  
        }  
        return max;  
    }  
  
    // 指出主对角线中最大元素的位置  
    private static void findMaxDiagonalPosition(int[][] array, int maxValue) {  
        for (int i = 0; i < array.length; i++) {  
            if (array[i][i] == maxValue) {  
                System.out.println("最大元素的位置是第" + (i + 1) + "行，第" + (i + 1) + "列");  
                break; // 假设最大元素只有一个  
            }  
        }  
    }  
}